home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue51 / Clinic / DockEgU.pas < prev    next >
Pascal/Delphi Source File  |  1999-09-09  |  2KB  |  79 lines

  1. unit DockEgU;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls, ExtCtrls;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     Panel1: TPanel;
  12.     Button1: TButton;
  13.     Label1: TLabel;
  14.     procedure Button1Click(Sender: TObject);
  15.     procedure FormCreate(Sender: TObject);
  16.   private
  17.     { Private declarations }
  18.   public
  19.     { Public declarations }
  20.   end;
  21.  
  22. var
  23.   Form1: TForm1;
  24.  
  25. implementation
  26.  
  27. uses DockEgU2;
  28.  
  29. {$R *.DFM}
  30.  
  31. type
  32.   TMyDockTree = class(TDockTree)
  33.   protected
  34.     procedure AdjustDockRect(Control: TControl; var ARect: TRect); override;
  35.     procedure PaintDockFrame(Canvas: TCanvas; Control: TControl;
  36.       const ARect: TRect); override;
  37.   end;
  38.  
  39. { TMyDockTree }
  40.  
  41. procedure TMyDockTree.AdjustDockRect(Control: TControl; var ARect: TRect);
  42. begin
  43.   //Do nothing to change the control's boundaries as
  44.   //there will be no dock grabber lines or close button
  45. end;
  46.  
  47. procedure TMyDockTree.PaintDockFrame(Canvas: TCanvas; Control: TControl;
  48.   const ARect: TRect);
  49. begin
  50.   //Do nothing as we do not want dock grabber lines or close button
  51. end;
  52.  
  53. { TForm1 }
  54.  
  55. procedure TForm1.FormCreate(Sender: TObject);
  56. begin
  57. {$ifndef CompletelyReplaceDefaultDockManager}
  58.   //Use this code to change just the panel's dock manager
  59.   //Note that we do not need to free this object since the property
  60.   //is actually an interface reference, and will auto-free
  61.   Panel1.DockManager := TMyDockTree.Create(Panel1)
  62. {$endif}
  63. end;
  64.  
  65. procedure TForm1.Button1Click(Sender: TObject);
  66. begin
  67.   if Form2.Floating then
  68.     Form2.ManualDock(Panel1)
  69.   else
  70.     Form2.ManualDock(nil)
  71. end;
  72.  
  73. initialization
  74. {$ifdef CompletelyReplaceDefaultDockManager}
  75.   //Only use this code to change all docking to draw no adornments
  76.   DefaultDockTreeClass := TMyDockTree
  77. {$endif}
  78. end.
  79.